Event-driven architecture (EDA) is a design pattern that promotes the production, detection, consumption of, and reaction to events. In a microservices context, this architectural style is often used to enable loosely coupled services that can communicate asynchronously through events. Amazon Web Services (AWS) provides a variety of services that support event-driven microservices. Here are some AWS technologies commonly used in this context:
-
Amazon Simple Notification Service (SNS):
- SNS is a fully managed pub/sub messaging service that enables the decoupling of microservices by allowing them to communicate asynchronously through topics. Services can publish messages to topics, and other services can subscribe to those topics to receive and react to the messages.
- Amazon Simple Queue Service (SQS):
- SQS is a fully managed message queuing service that enables the decoupling of components in a microservices architecture. It provides a reliable and scalable way to transmit any volume of data between microservices without losing messages.
- AWS Lambda:
- AWS Lambda allows you to run code without provisioning or managing servers. It can be triggered by various AWS services, such as S3, DynamoDB, SNS, and more. Lambda functions are commonly used to process events and execute specific business logic in response.
- Amazon EventBridge:
- EventBridge is a fully managed event bus service that makes it easy to connect applications using events. It allows you to build event-driven architectures by simplifying the process of ingesting, filtering, and delivering events.
- Amazon Kinesis:
- Amazon Kinesis provides real-time stream processing for large volumes of data. Kinesis Streams can be used to ingest and process real-time data streams, and Kinesis Firehose can be used to load data into data stores or analytics services.
- AWS Step Functions:
- Step Functions is a serverless orchestration service that allows you to coordinate the components of distributed applications using visual workflows. It can be used to design and execute workflows that involve multiple microservices.
- AWS App Runner:
- App Runner is a fully managed service that makes it easy to build, deploy, and scale containerized applications quickly. It can be used to deploy microservices and manage their scaling based on demand.
- Amazon DynamoDB Streams:
- DynamoDB Streams capture changes to a table and allow you to process these changes in real-time. This can be useful in building event-driven architectures where microservices react to changes in the data.
- AWS CloudWatch Events:
- CloudWatch Events enable you to respond to system events and automate workflows. You can use CloudWatch Events to schedule and trigger AWS Lambda functions, or to send events to other AWS services.
- Amazon API Gateway:
- API Gateway can be used to expose microservices as APIs, allowing other services to interact with them. It can also be configured to trigger Lambda functions in response to HTTP requests.
When designing event-driven microservices on AWS, the choice of specific services depends on the use case, requirements, and preferences. The combination of these services provides a robust foundation for building scalable and loosely coupled microservices architectures
Azure Event Hubs.
Azure Monitoring
Azure Ecosystems
Message Queue experience within Azure Ecosystems